/**
 * @file
 * @author  Tsin Smith <tsin.creator@gmail.com>
 *
 * @section DESCRIPTION
 *
 */

#ifndef __TSIN_LIBRARY_IMAGESERIES_HPP__
#define __TSIN_LIBRARY_IMAGESERIES_HPP__

#include <tsin/library/BuiltinImages.hpp>

namespace tsin {

        class ImageSeries {
        public:
                virtual bool inquiry(BulletShape shape, BulletColor color,
                                     ImageInfo &info);
                virtual bool inquiry(Character character, Action action,
                                     ImageInfo &info);
                virtual bool inquiry(Effect effect, ImageInfo &info);

                virtual const char *getImagePath() = 0;
                virtual int getSizeX() = 0;
                virtual int getSizeY() = 0;
                virtual int getCoordX() = 0;
                virtual int getCoordY() = 0;
                virtual BlendStyle getBlendStyle();

                virtual int getNrFrames();
                virtual NextFrameHandler getHandler();

        protected:
                BulletShape shape;
                BulletColor color;

                Character character;
                Action action;

                Effect effect;

        private:
                void fillImageInfo(ImageInfo &info);
        };
}

#endif /* __TSIN_LIBRARY_IMAGESERIES_HPP__ */
